<?php

namespace app\admin\controller;

use think\facade\View;
use utils\JsonHandle;
use utils\TokenUtil;

class User extends BaseController
{
    //初始页面
    public function index()
    {
        return View::fetch();
    }

    public function login()
    {
        //接收参数
        $params = input();
        //参数检测（表单验证）
        $validate = $this->validate($params, [
            'username|用户名' => 'require',
            'password|密码' => 'require'
        ]);
        if ($validate !== true) {//参数验证失败
            return JsonHandle::fail("参数为空");
        }
        $user = \app\admin\model\User::where("username", $params["username"])->where("password", $params["password"])->find();
        if (empty($user)) {
            return JsonHandle::fail("用户名或者密码错误");
        }
        //生成token令牌
        $token = TokenUtil::getToken($user['id']);
        //返回数据
        $data = [
            'token' => $token,
            'user_id' => $user['id'],
            'username' => $user['username'],
            'wxid' => $user['wxid'],
            'login_time' => $user['last_login_time']
        ];
        return JsonHandle::ok($data);
    }

    //退出接口
    public function logout()
    {
        //记录token 为已退出
        //获取当前请求中的token
        $token = TokenUtil::getRequestToken();
        //从缓存中取出 注销的token数组
        $delete_token = cache('delete_token') ?: [];
        //将当前的token 加入到数组中 ['dssfd','dsfds']
        $delete_token[] = $token;
        //将新的数组 重新存到缓存中  缓存x秒
        cache('delete_token', $delete_token, 60 * 5);
        return JsonHandle::ok();
    }

    //获取token 进行检测
    public function tokenCheck($token = null)
    {
        $user_id = TokenUtil::getUserId();
        //登录验证
        if (empty($user_id)) {
            return JsonHandle::fail('未登录或Token无效');
        }
        return JsonHandle::ok($user_id);
    }

    //获取用户列表页面
    public function userListPage()
    {
        return View::fetch('userList');
    }


    //获取token 查询用户列表
    public function userList()
    {
        $user_id = TokenUtil::getUserId();
        //登录验证
        if (empty($user_id)) {
            return JsonHandle::fail('未登录或Token无效!!');
        }
        $list=\app\admin\model\User::select();
        return JsonHandle::ok($list);
    }

    //获取token 查询用户列表
    public function userListApi()
    {
        //接收参数
        $params = input();
        //参数检测（表单验证）
//        if (empty($params["data"])) {//参数验证失败
//            return JsonHandle::fail("传递的参数username为空");
//        }
        $list = \app\admin\model\User::select();
        return JsonHandle::ok($list);
    }

}
